
/**
 * Write a description of class Driver here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Driver
{
    static String inputImage = "strand.jpg";
    
    static public void setImageSource(String source){
        inputImage = source;
    }
    static public void runBrigthen(int factor){
        Image I = new Image(inputImage);
        SimpleFilters F = new SimpleFilters(I);
        
        F.brighten(factor);
        
    }
    static public void runDarken(int factor){
        Image I = new Image(inputImage);
        SimpleFilters F = new SimpleFilters(I);
        
        F.darken(factor);
        
    }
    static public void runInvert(){
        Image I = new Image(inputImage);
        SimpleFilters F = new SimpleFilters(I);
        
        F.invert();
        
    }
    static public void runSolarize(){
        Image I = new Image(inputImage);
        SimpleFilters F = new SimpleFilters(I);
        
        F.solarize();
        
    }
    static public void runMirror(){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        
        F.mirror();
        
    }
    static public void runFlip(){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        
        F.flip();
        
    }
    static public void runRotate(){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        
        F.rotate();
        
    }
    static public void runBlur(){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        
        F.blur();
        
    }
    
    static public void runGaussianBlur(){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        
        F.gaussianBlur(0.84089642, 5);
        
    }
    static public void runGaussianBlur(double sigma, int size){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        
        F.gaussianBlur(sigma, size);
        
    }
    static public void runScale(double factor){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);

        F.scale(factor);
        
    }
    static public void runGaussianScale(double factor){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        AdvancedFilters F1 = new AdvancedFilters(F.gaussianBlur(1.0 / factor, 1));
        F1.scale(factor);
        
    }
    static public void runGaussianScaleAndNormalScaleComparison(double factor){
        Image I = new Image(inputImage);
        AdvancedFilters F = new AdvancedFilters(I);
        F.scale(factor);
        AdvancedFilters F1 = new AdvancedFilters(F.gaussianBlur(1.0 / factor, 1));
        F1.scale(factor);
        
    }
}
